/*--------------------------------*- C++ -*----------------------------------*\
| solids4foam: solid mechanics and fluid-solid interaction simulations        |
| Version:     v2.0                                                           |
| Web:         https://solids4foam.github.io                                  |
| Disclaimer:  This offering is not approved or endorsed by OpenCFD Limited,  |
|              producer and distributor of the OpenFOAM software via          |
|              www.openfoam.com, and owner of the OPENFOAM® and OpenCFD®      |
|              trade marks.                                                   |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fsiProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

//fluidSolidInterface    fixedRelaxation;
fluidSolidInterface    Aitken;
//fluidSolidInterface    IQNILS;

"fixedRelaxationCoeffs|AitkenCoeffs|IQNILSCoeffs"
{
    // Solid interface patch list
    solidPatch interface;

    // Fluid interface patch list
    fluidPatch interface;

    // Under-relaxation factor for passing the solid interface
    // displacement/velocity to the fluid interface
    // For fixedRelaxation, this value is used for all iterations
    // For Aitken, this value is used for the first iteration each time-step,
    // then it adaptively changes
    // For IQNILS, this value is used for the first two iterations each
    // time-step, then the IQNILS procedure is used
    relaxationFactor 0.4;

    // Tolerance for the FSI loop within each time-step
    outerCorrTolerance 1e-6;

    // Maximum number of outer FSI loop correctors within each time-step
    nOuterCorr 20;

    // Enable/disable coupling from the start
    coupled yes;

    // Method for transferring information between the interfaces
    interfaceTransferMethod directMap;
    //interfaceTransferMethod RBF;
    //interfaceTransferMethod GGI;

    // Optional: if coupled is set to "no", then the couplingStartTime allows
    // you to enable coupling at a specified time
    // Defaults to 0.0
    // couplingStartTime    2.0;

    // Optional (only for IQNILS): re-use modes from previous time-steps.
    // The number of modes to be re-used is specified
    // Defaults to 0 modes
    // couplingReuse 0;

    // Optional: if any point on the fluid interface moves greater than the
    // interfaceDeformationLimit then the entire fluid mesh is updated; if not
    // then only the interface points are moved and the remaining fluid mesh is
    // not. Note that interfaceDeformationLimit is a relative motion: it is the
    // point displacement normalised with respect to the local cell size (delta
    // coeffs are used)
    // Defaults to 0.0 i.e. the fluid mesh is always updated
    // interfaceDeformationLimit 0.0;

    // Frequency of time-step at which the fluid-solid interface interpolation
    // weights are updated
    // 0 means there will be no interpolator update during simulation, whereas
    // 10 means the interpolator will be updated every 10 time-steps
    // Defaults to 0
    // interpolatorUpdateFrequency 0;
}

// ************************************************************************* //
